#ifndef _ACC_
#define _ACC_

namespace air {
	class IObject;
	/**
	 * @brief Non-Gui Object Render and Processer
	 */
	class Acc {
	public:
		Acc();
		~Acc();
		/**
		 * @brief release all object in Acc
		 */
		void clear();
		/**
		 * @brief add object to Acc
		 *
		 * @param IObject pointer to object to be added
		 */
		void addObject(IObject*);
		/**
		 * @brief remove object from acc. automatically release
		 *
		 * @param IObject pointer to object to be removed
		 */
		void removeObject(IObject*);

		void Render();
		bool Update(float dt);
		
	private:
		IObject *head, *tail;
	};
}
#endif
